package com.spsoft.vatoutinv.service.matchflow;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.spsoft.core.model.Result;
import com.spsoft.core.model.bo.TokenUser;
import com.spsoft.vatoutinv.model.dto.matchflow.VmsMatchFlowPageDto;
import com.spsoft.vatoutinv.model.vo.matchflow.VmsMatchFlowApplyVo;
import com.spsoft.vatoutinv.model.vo.matchflow.VmsMatchInvoiceInfoVo;

import javax.servlet.http.HttpServletResponse;

/**
 * 手工匹配流水撤销 服务类
 *
 * @author : chenxudong
 * @date : 2024/6/25 11:07
 */
public interface VmsMatchFlowRevokeService {

    /**
     * 手工匹配流水撤销主页面-分页查询
     * @param pageDto 查询条件
     */
    Result<IPage<VmsMatchFlowApplyVo>> pageApply(VmsMatchFlowPageDto pageDto);

    /**
     * 手工匹配流水撤销主页面-数据导出
     * @param pageDto 查询条件
     */
    void export(VmsMatchFlowPageDto pageDto, HttpServletResponse response);

    /**
     * 新增子界面-快速添加
     * @param fpdm 发票代码
     * @param fphm 发票号码
     * @param applyId 审批流id
     * @param tokenUser 登录用户信息
     */
    Result<VmsMatchInvoiceInfoVo> fastAdd(String fpdm, String fphm, Long applyId, TokenUser tokenUser);

    /**
     * 查询手工匹配流水信息详情-流程使用
     * @param applyId 审批流id
     */
    Result<VmsMatchInvoiceInfoVo> getApplyDetail(Long applyId);

    /**
     * 审批流程，将发票明细和关联的流水进行处理
     * @param applyId 审批流id
     */
    Result<Object> matchFlowRevokeProcess(Long applyId);

}
